Cloud computing enables ubiquitous, on-demand network access to a shared pool of configurable computing resources that can be rapidly provisioned and released with minimal management effort or service provider interaction. The resources may include, for example, processing, servers, storage, applications, network bandwidth, and services. A typical cloud model provides on-demand self-service, broad network access, resource pooling, rapid elasticity and measured service. Cloud consumers unilaterally provision computing capabilities as needed without requiring service provider interaction. The cloud services are available over public and/or private networks and are accessed using standard mechanisms. The cloud provider's computing resources are pooled so that they can be used to serve multiple consumers by dynamically assigning and reassigning physical and virtual resources according to consumer demand (i.e., multi-tenant).
The cloud consumer generally has no control or knowledge over the location of the provided resources which may be supported by one or more distributed datacenters. The cloud services are elastically provisioned and released to allow for rapid scaling with demand. As a result, the capabilities may appear to the consumer as unlimited and available for provisioning in any quantity at any time. Cloud systems automatically control and optimize resource use by leveraging a metering capability appropriate to the type of service.
Any number of additional resources can be registered with the cloud as long as the new services conform to the standard application programming interface (API) contract used in the cloud system. However, service onboarding into a public or private cloud currently requires a manual process. For example, in order to offer new multi-tenant services in a cloud, the service must first be installed, assigned runtime, etc. Once full installed, then someone must manually register and approve service uniform resource identifiers (URIs), certificates, and other credentials. Additionally, the capabilities of the service, such as resource type, version number, etc., must be declared. These requirements are particularly inconvenient when organizations want to install new multi-tenant services in their own private cloud or in a hosted public cloud.